home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / The GIMP 2.2.8 / gimp-2.2.8-i586-setup.exe / {app} / share / gimp / 2.0 / scripts / unsharp-mask.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2005-06-30  |  3.2 KB  |  84 lines

  1. ;;; unsharp-mask.scm
  2. ;;; Time-stamp: <1998/11/17 13:18:39 narazaki@gimp.org>
  3. ;;; Author: Narazaki Shuji <narazaki@gimp.org>
  4. ;;; Version 0.8
  5.  
  6. (define (script-fu-unsharp-mask img drw mask-size mask-opacity)
  7.   (let* ((drawable-width (car (gimp-drawable-width drw)))
  8.      (drawable-height (car (gimp-drawable-height drw)))
  9.      (new-image (car (gimp-image-new drawable-width drawable-height RGB)))
  10.      (original-layer (car (gimp-layer-new new-image
  11.                           drawable-width drawable-height
  12.                           RGB-IMAGE "Original"
  13.                           100 NORMAL-MODE)))
  14.      (original-layer-for-darker #f)
  15.      (original-layer-for-lighter #f)
  16.      (blured-layer-for-darker #f)
  17.      (blured-layer-for-lighter #f)
  18.      (darker-layer #f)
  19.      (lighter-layer #f))
  20.  
  21.     (gimp-selection-all img)
  22.     (gimp-edit-copy drw)
  23.  
  24.     (gimp-image-undo-disable new-image)
  25.  
  26.     (gimp-image-add-layer new-image original-layer 0)
  27.     (gimp-floating-sel-anchor
  28.      (car (gimp-edit-paste original-layer FALSE)))
  29.  
  30.     (set! original-layer-for-darker (car (gimp-layer-copy original-layer TRUE)))
  31.     (set! original-layer-for-lighter (car (gimp-layer-copy original-layer TRUE)))
  32.     (set! blured-layer-for-darker (car (gimp-layer-copy original-layer TRUE)))
  33.     (gimp-drawable-set-visible original-layer FALSE)
  34.     (gimp-display-new new-image)
  35.  
  36.     ;; make darker mask
  37.     (gimp-image-add-layer new-image blured-layer-for-darker -1)
  38.     (plug-in-gauss-iir TRUE new-image blured-layer-for-darker mask-size
  39.                TRUE TRUE)
  40.     (set! blured-layer-for-lighter
  41.       (car (gimp-layer-copy blured-layer-for-darker TRUE)))
  42.     (gimp-image-add-layer new-image original-layer-for-darker -1)
  43.     (gimp-layer-set-mode original-layer-for-darker SUBTRACT-MODE)
  44.     (set! darker-layer
  45.       (car (gimp-image-merge-visible-layers new-image CLIP-TO-IMAGE)))
  46.     (gimp-drawable-set-name darker-layer "darker mask")
  47.     (gimp-drawable-set-visible darker-layer FALSE)
  48.  
  49.     ;; make lighter mask
  50.     (gimp-image-add-layer new-image original-layer-for-lighter -1)
  51.     (gimp-image-add-layer new-image blured-layer-for-lighter -1)
  52.     (gimp-layer-set-mode blured-layer-for-lighter SUBTRACT-MODE)
  53.     (set! lighter-layer
  54.       (car (gimp-image-merge-visible-layers new-image CLIP-TO-IMAGE)))
  55.     (gimp-drawable-set-name lighter-layer "lighter mask")
  56.  
  57.     ;; combine them
  58.     (gimp-drawable-set-visible original-layer TRUE)
  59.     (gimp-layer-set-mode darker-layer SUBTRACT-MODE)
  60.     (gimp-layer-set-opacity darker-layer mask-opacity)
  61.     (gimp-drawable-set-visible darker-layer TRUE)
  62.     (gimp-layer-set-mode lighter-layer ADDITION-MODE)
  63.     (gimp-layer-set-opacity lighter-layer mask-opacity)
  64.     (gimp-drawable-set-visible lighter-layer TRUE)
  65.  
  66.     (gimp-image-undo-enable new-image)
  67.     (gimp-displays-flush)))
  68.  
  69.  
  70. (script-fu-register "script-fu-unsharp-mask"
  71.             _"_Unsharp Mask..."
  72.             "Make a sharp image of IMAGE's DRAWABLE by applying unsharp mask method"
  73.             "Shuji Narazaki <narazaki@gimp.org>"
  74.             "Shuji Narazaki"
  75.             "1997,1998"
  76.             ""
  77.             SF-IMAGE       "Image"             0
  78.             SF-DRAWABLE    "Drawable to apply" 0
  79.             SF-ADJUSTMENT _"Mask size"         '(5 1 100 1 1 0 1)
  80.             SF-ADJUSTMENT _"Mask opacity"      '(50 0 100 1 1 0 1))
  81.  
  82. (script-fu-menu-register "script-fu-unsharp-mask"
  83.              _"<Image>/Script-Fu/Alchemy")
  84.